package MOLE;

import java.util.*;

/** 
 str ��ժҪ˵����
 
 
*/

public class str
{
	public String UrlPara = "";
	public str()
	{
		//
		// TODO: �ڴ˴���ӹ��캯���߼�
		//
	}

	//���������ַ���ʽ�Ƿ���Ч
	public static boolean MatchPass(String FormatStr, String InputStr)
	{
		Match m = (new Regex(FormatStr)).Match(InputStr);
		return m.Success;
	}

	public static String superTrim(String s, String trimStr, int trimcounter)
	{

		for (int i = 0;i < trimcounter;i++)
		{
			 s = tangible.DotNetToJavaStringHelper.trim(s, trimStr.toCharArray()[0]);
			 s = s.trim();
		}

		 return s;
	}

	public static String ToTimeFormat(int i)
	{
		if (String.valueOf(i).length() == 1)
		{
			return "0" + String.valueOf(i);
		}
		else
		{
			return String.valueOf(i);
		}

	}

	public static String[] BubbleSort(String[] R)
	{
		/** 
		 ð������
		*/

		int i, j; //������־
		String temp;

		boolean exchange;

		for (i = 0; i < R.length; i++) //�����R.Length-1������
		{
			exchange = false; //��������ʼǰ��������־ӦΪ��

			for (j = R.length - 2; j >= i; j--)
			{
				if (String.CompareOrdinal(R[j + 1], R[j]) < 0)
				{
					�� ///��������
					{
					temp = R[j + 1];
					R[j + 1] = R[j];
					R[j] = temp;

					exchange = true; //�����˽������ʽ�������־��Ϊ��
					}
				}
			}

			if (!exchange) //��������δ������������ǰ��ֹ�㷨
			{
				break;
			}

		}
		return R;
	}


	public static String GetSafeString(String s)
	{
		String t = "";
		try
		{
			t = s.trim();
		}
		catch (java.lang.Exception e)
		{
		}

		return t;


	}

	public static double ConvertToDouble(String s)
	{
		return ConvertToDouble(s, 0);
	}

	public static double ConvertToDouble(String s, double defalutValue)
	{
		double d = defalutValue;
		try
		{
			d = Double.parseDouble(s.toString().trim().trim());
		}
		catch (java.lang.Exception e)
		{
		}
		return d;
	}

	public static java.math.BigDecimal ConverToDecimal(String s)
	{
		return ConverToDecimal(s, 0);
	}

	public static java.math.BigDecimal ConverToDecimal(String s, java.math.BigDecimal defalutValue)
	{
		java.math.BigDecimal d = defalutValue;
		try
		{
			d = (java.math.BigDecimal)(s.toString().trim().trim());
		}
		catch (java.lang.Exception e)
		{
		}
		return d;
	}

	public static double ConvertToDouble(Object s)
	{
		return ConvertToDouble(s, 0);
	}
	public static double ConvertToDouble(Object s, double defalutValue)
	{
		double d = defalutValue;
		try
		{
			d = Double.parseDouble(s.toString().trim().trim());
		}
		catch (java.lang.Exception e)
		{
		}
		return d;
	}

	public static long ConvertToLong(String s)
	{
		return ConvertToLong(s, 0);
	}
	public static long ConvertToLong(String s, int defaultValue)
	{
		return Long.parseLong(String.valueOf(ConvertToDouble(s, defaultValue)));
	}


	public static int ConvertToInt(String s)
	{
		 return ConverToInt(s, 0);
	}
	public static String ConvertToString(Object s)
	{
		String tmp = "";
		try
		{
			tmp = s.toString();
		}
		catch (java.lang.Exception e)
		{
		}
		return tmp;
	}




	public static int ConverToInt(String s, int defaultValue)
	{
		int d = defaultValue;
		try
		{
			d = Integer.parseInt(s.trim().trim());
		}
		catch (java.lang.Exception e)
		{
		}
		return d;

	}
	public static String GetSafeString(String[] s, int i)
	{
		String t = "";
		try
		{
			t = s[i].trim().trim();
		}
		catch (java.lang.Exception e)
		{
		}

		return t;


	}





	//�ָ����ʼ
	public static String[] split(String strinput, String sp)
	{
		String tmp = "";
		int strlen = 0, splen = 0;
		int found = 0;
		String[] rt = null;


			if (strinput == null || sp == null || strinput.length() == 0 || sp.length() == 0)
			{
				return null;
			}

			//��ʼ��һ�������б��������̬���飩
			ArrayList tmp3 = new ArrayList();

			strlen = strinput.length();
			splen = sp.length();
			for (int i = 0; i < strlen; i++)
			{
				//���ҷָ��
				found = strinput.indexOf(sp, i);
				if (found >= 0)
				{
					tmp = "";
					//ȡ�ָ��ǰ���ַ���
					tmp = strinput.substring(i, found);
					//��ӵ������б�
					tmp3.add(tmp);
					i = found + splen - 1;
				}
				else
				{
					String tmp2 = "";
					//ȡ�����ַ���
					tmp2 = strinput.substring(i);
					if (!tmp2.equals(""))
					{
						tmp3.add(tmp2);
					}
					break;
				}
			}

			//����̬�����ά�����ó�ʵ�ʴ��ڵ�Ԫ�ظ�������Ϊ�����б�����16�ı�������ά����
			tmp3.TrimToSize();
			//ת�������б�Ϊ�ַ������飬�����ء�
			rt = (String[])tmp3.toArray(new String[0]);
			tmp3.clear();


		return rt;
	}




	public static String NoSame(String str)
	{
		String s = str;
		String [] a = s.split("[,]", -1);
		String tmp = "";
		ArrayList al = new ArrayList();


		for (int i = 0;i < a.length;i++)
		{
			if (HasSameSub(al, a[i].trim()))
			{

			}
			else
			{
				al.add(a[i].trim());
			}
		}

		for (int i = 0;i < al.size();i++)
		{
			tmp = tmp + "," + al.get(i).toString().trim();

		}
		tmp = tangible.DotNetToJavaStringHelper.trim(tmp, ',');
		return tmp;

	}

	public static boolean HasSameSub(ArrayList al, String substr)
	{
		//"456,789,456";
		for (int i = 0;i < al.size();i++)
		{
			if (al.get(i).toString().trim().equals(substr))
			{
				return true;
			}
		}

		return false;

	}


	//add to url para.
	public final void Add(String paraName, String paraValue)
	{
		UrlPara = UrlPara + "&" + paraName + "=" + paraValue;
	}
	public final String GetUrlPara(String order)
	{
		if (order.equals("asc"))
		{
			String s = tangible.DotNetToJavaStringHelper.trim(UrlPara, '&');
			String[] urlPara = s.split("[&]", -1);
			urlPara = MOLE.str.BubbleSort(urlPara);
			 return tangible.DotNetToJavaStringHelper.join("&", urlPara);
		}
		else
		{
			return "";
		}
	}


	//����URL������
	//����:    c=123&b=456&a=123
	//RETURN:  a=123&b=456&c=123 
	public static String GetUrlParaOrder(String urlParaStr)
	{
		 String[] urlPara = urlParaStr.split("[&]", -1);
		urlPara = MOLE.str.BubbleSort(urlPara);
		return tangible.DotNetToJavaStringHelper.join("&", urlPara);
	}

	public final String GetUrlSign()
	{
		String s = tangible.DotNetToJavaStringHelper.trim(UrlPara, '&');
		return MOLE.EncryptDecrypt.MD5(s);

	}


	public static boolean Match(String RegStr, String Str)
	{
		 System.Text.RegularExpressions.Match m = (new Regex(RegStr)).Match(Str);
		return m.Success;

	}

	public static String StrTooLen(Object stro, int len, String addstr)
	{
String str = stro.toString();
		if (str.length() > len)
		{
			str = str.substring(0,len - addstr.length());
			str += addstr;
		}


		return str;

	}


	public static String InsertSpan(String str, String span)
	{
		String s = "";
		for (int i = 0;i < str.length();i++)
		{
			String tmp = str.substring(i, i + 1);
			s += tmp + ",";
		}
		s = tangible.DotNetToJavaStringHelper.trim(s, ',');
		return s;
	}


//	Convert.ToDouble( hadmoney).ToString("0.00"); //��ʾ���




}